package com.wjy.Data_Structure.tree;

import com.wjy.Data_Structure.linearlist.common.Iterator;

public interface BinTree {
	/**
	 * 返回树的规模
	 * @return
	 */
	public int getSize();

	/**
	 * 判断树是否为空
	 * @return
	 */
	public boolean isEmpty();

	/**
	 * 返回根结点的引用
	 * @return
	 */
	public BinTreeNode getRoot();

	/**
	 * 在树中查找元素e,返回其所在结点
	 * @param e
	 * @return
	 */
	public BinTreeNode find(Object e);

	/**
	 * 获取树的高度
	 * @return
	 */
	public int getHeight();

	/**
	 * 先序遍历二叉树
	 * @return
	 */
	public Iterator preOrder();

	/**
	 * 中序遍历二叉树
	 * @return
	 */
	public Iterator inOrder();

	/**
	 * 后序遍历二叉树
	 * @return
	 */
	public Iterator postOrder();

	/**
	 * 按层遍历二叉树
	 * @return
	 */
	public Iterator levelOrder();
}
